package Student_Evaluate;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

/**
 * 对LoginDao建立链接，输入数据库名称
 * 将数据库的输入用户名，使用者名，账号和密码
 * 用sql语句判断处理，代表占位符
 * 对数据库进行填充
 * 判断填充值是第几个
 * 进入while循环
 */

public class LoginDao {
    public List<UserPojo> findByUname(String p_username) throws SQLException {
        //2. 创建连接 localhost:1433;DatabaseName=数据库名
        Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=xie", "sa", "123456");
        //sql中的？代表占位符，  预处理执行器特有
        String sql = "select id,username,password from user_mst where username=?";
        PreparedStatement ps = conn.prepareStatement(sql);
        //填充第几个？
        ps.setString(1,p_username);
        // 3
        ArrayList<UserPojo> ulist = new ArrayList<>();
        ResultSet rs = ps.executeQuery();
        //进入WHILE循环
        while (rs.next()) {
            UserPojo pojo = new UserPojo();
            //更新UserPojo的数据
            ulist.add(pojo);
            //添加ulist
            pojo.setId(rs.getInt(1));
            //对学生号进行填充
            pojo.setUsername(rs.getString(2));
            //对用户名进行填充
            pojo.setPassword(rs.getString(3));
//对对密码进行填充
            //   pojo.setSex(rs.getString(4));
            //   pojo.setDate(rs.getString(5));

        }
        conn.close();
        //结束循环
        return ulist;
        //返回ulist
    }

    /**
     * 对addUserInfo进行数据库创建链接
     * 链接数据库的的数据库名，用户名，账号和密码
     * 对sql中的Student_Evaluate占位符进行类举
     * 填充第一列
     * 填充第二列
     * 填充第三列
     * exuecuteQuery 用于 Select  executeUpdate()用于修改CUD
     * 返回rs
     * @param v1
     * @param v2
     * @param v3
     * @return
     * @throws SQLException
     */

    public int addUserInfo(String v1, String v2, String v3) throws SQLException {
// 2. 创建连接 localhost:1433;DatabaseName=数据库名
        Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=xie", "sa", "123456");
        // sql中的？代表占位符，  预处理执行器特有
        String sql = "insert into Student_Evaluate(sno,tno,level) values(?, ?, ?)";
        PreparedStatement ps = conn.prepareStatement(sql);
        // 填充第几个？
        ps.setString(1, v1);
        //填充第一个
        ps.setString(2, v2);
        //填充第二个
        ps.setString(3, v3);
        //填充第三个
       /**
       ps.setString(4, v4);
        ps.setInt(5, v5);
        ps.setString(6, v6);
        ps.setInt(7, v7);
        */

        // 3
        // exuecuteQuery 用于 Select  executeUpdate()用于修改CUD
        int rs = ps.executeUpdate();
        //定义rs

        conn.close();

        return rs;
        //返回rs
    }

    /**
     * 进行数据库创建链接，localhost:1433;DatabaseName=数据库名
     * 链接数据库的的数据库名，用户名，账号和密码
     * 对sql中的Student_Evaluate占位符进行类举
     * 进入while循环
     * 填充第一列
     * 填充第二列
     * 填充第三列
     * exuecuteQuery 用于 Select  executeUpdate()用于修改CUD
     * 返回rs
     * @param tno
     * @return
     * @throws SQLException
     */
    public List<Student_EvaluatePojo> selectByTno(String tno) throws SQLException {
//2. 创建连接 localhost:1433;DatabaseName=数据库名
        Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=xie", "sa", "123456");
        //sql中的？代表占位符，  预处理执行器特有
        String sql = "select sno,tno,level\n" +
                "from Student_Evaluate\n" +
                "where tno=?";
        //sql语句
        PreparedStatement ps = conn.prepareStatement(sql);
        //填充第几个？
        ps.setString(1,tno);
        // 3
        ArrayList<Student_EvaluatePojo> slist = new ArrayList<>();
        ResultSet rs = ps.executeQuery();
        //更新
        while (rs.next()) {

            Student_EvaluatePojo pojo = new Student_EvaluatePojo();
            slist.add(pojo);
            //对pojo进行填充
//            pojo.setSno(rs.getString(1));
            pojo.setSno(rs.getString(1));
            //填充第一个
            pojo.setTno(rs.getString(2));
            //填充第二个
            pojo.setLevel(rs.getString(3));
            //填充第三个
            /**
             * pojo.setSgrade(rs.getInt(5));
             * pojo.setCareer(rs.getString(6));
             * pojo.setCid(rs.getInt(7));
             * */
            System.out.println("学号为："+rs.getString(1)+"  "
                    //输出学号为
                    +"教师号为："+rs.getString(2)+"  "
                    //输出教师号为
                    /*+"生日为："+rs.getString(3)+"  "
                    +"性别为："+rs.getString(4)+"  "
                    +"成绩为："+rs.getString(5)+"  "
                    +"专业为："+rs.getString(6)+"  "
                    */
                    +"等级为："+rs.getString(3));
            //输出等级为
        }
        conn.close();
        //结束此循环
        return slist;
        //返回slist
    }
    }

